from django.urls import path,re_path
from django.urls import register_converter
from . import views
from django.http import HttpResponse

# 自定义转换器
class  Mobile():
    # 在这里编写正则表达式
    regex = '1[3-9]\d{9}'

    def to_python(self,value):
        return  int(value)

    def to_url(self,value):
        return str(value)
# 转换器注册
# 第一个参数是自定义转换器的类名,第二个参数，转换器名称
register_converter(Mobile,'mobile')
urlpatterns = [
    # 登入 http//:127.0.0.1:8000/login/
    # path方法中第一参数：匹配路径 path方法中第二参数：匹配成功后需要调用的方法，方法在views.py文件中编写
    path('login', views.login),
    path('register', views.register),
    path('userinfo', views.userinfo),
    path('user/', views.UserView.as_view()),
    path('Hu', views.RequestDate.as_view()),
    # 匹配路径中的数据 http://127.0.0.1:9595/user/python/15946990499
    path('user/<str:name>/<mobile:mobile>/<str:skill>/<str:result>', views.UserView.as_view()),

    path('iii', views.ResponseDataView.as_view()),

    path('yuw', views.RedirectView.as_view()),
    # 获取请求头部信息
    path('header', views.HeaderView.as_view()),

    path('reverse', views.ReverseView.as_view()),
    # 图书增删改查
    path('books', views.BooksView.as_view()),
    # 关联查询
    path('guanlian', views.BookView.as_view())

]

from django.utils.deprecation import MiddlewareMixin

class TestMiddleware1(MiddlewareMixin):
    """自定义中间件"""
    def process_request(self, request):
        """处理请求前自动调用"""
        print('process_request1 被调用')
        # 判断用户是否登入
        # query = request.GET.get('name')
        # if query is None:
        #     return HttpResponse('用户未登入')

    def process_view(self, request, view_func, view_args, view_kwargs):
        # 处理视图前自动调用
        print('process_view1 被调用')
    def process_response(self, request, response):
        """在每个响应返回给客户端之前自动调用"""
        print('process_response1 被调用')
        return response